package com.ruoyi.project.modules.usage.domain;

import com.ruoyi.project.modules.userDataAuth.domain.UserDataAuth;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.List;
import java.util.Set;

/**
 * 用况对象 t_usage
 * 
 * @author smallrain
 * @date 2021-11-04
 */
public class Usage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 用况名称 */
    @Excel(name = "用况名称")
    private String usageyName;

    /** 用况说明 */
    @Excel(name = "用况说明")
    private String usageyDescription;

    /** 用况类型（1增 2删 3改 4查） */
    @Excel(name = "用况类型", readConverterExp = "1=增,2=删,3=改,4=查")
    private String usageType;

    /** 是否单模块用况（Y是 N否） */
    @Excel(name = "是否单模块用况", readConverterExp = "Y=是,N=否")
    private String isAlone;

    /** 用况故事 */
    @Excel(name = "用况故事")
    private String usageStory;

    /** 价值描述 */
    @Excel(name = "价值描述")
    private String valueDescription;

    /** 业务实现逻辑描述 */
    @Excel(name = "业务实现逻辑描述")
    private String businessImplDescription;

    /** 前后台类型（1前台 2后台） */
    @Excel(name = "前后台类型", readConverterExp = "1=前台,2=后台")
    private String fbType;

    /** 终端类型（1PCweb 2H5 3APP 4微信小程序） */
    @Excel(name = "终端类型", readConverterExp = "1=PCweb,2=H5,3=APP,4=微信小程序")
    private String clientType;

    /** 版本类型（1新功能 2优化 3废弃） */
    @Excel(name = "版本类型", readConverterExp = "1=新功能,2=优化,3=废弃")
    private String versionType;

    /** 优化或废弃说明 */
    @Excel(name = "优化或废弃说明")
    private String versionDescription;

    /** 分类节点ID */
    @Excel(name = "分类节点ID")
    private Long categoryId;

    private String categoryCode;

    private Boolean selected = false;;

    public Boolean getSelected() {
        return selected;
    }

    public void setSelected(Boolean selected) {
        this.selected = selected;
    }

    public String getCategoryCode() {
        return categoryCode;
    }

    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }

    @Excel(name = "分类节点名称")
    private String categoryName;

    /** 状态（0正常 1停用） */
    private String status;

    /** 用况开发状态 */
    private String objectStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    private Set<Long> usageIds;

    private Long[] participateRoleIds;

    private Long interfaceId;

    private int flag = 0;

    private Long userId;

    private String username;

    private List<UserDataAuth> userList;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public int getFlag() {
        return flag;
    }

    public void setFlag(int flag) {
        this.flag = flag;
    }

    public Set<Long> getUsageIds() {
        return usageIds;
    }

    public void setUsageIds(Set<Long> usageIds) {
        this.usageIds = usageIds;
    }

    public Long getInterfaceId() {
        return interfaceId;
    }

    public void setInterfaceId(Long interfaceId) {
        this.interfaceId = interfaceId;
    }

    public Long[] getParticipateRoleIds() {
        return participateRoleIds;
    }

    public void setParticipateRoleIds(Long[] participateRoleIds) {
        this.participateRoleIds = participateRoleIds;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUsageyName(String usageyName) 
    {
        this.usageyName = usageyName;
    }

    public String getUsageyName() 
    {
        return usageyName;
    }
    public void setUsageyDescription(String usageyDescription) 
    {
        this.usageyDescription = usageyDescription;
    }

    public String getUsageyDescription() 
    {
        return usageyDescription;
    }
    public void setUsageType(String usageType) 
    {
        this.usageType = usageType;
    }

    public String getUsageType() 
    {
        return usageType;
    }
    public void setIsAlone(String isAlone) 
    {
        this.isAlone = isAlone;
    }

    public String getIsAlone() 
    {
        return isAlone;
    }
    public void setUsageStory(String usageStory) 
    {
        this.usageStory = usageStory;
    }

    public String getUsageStory() 
    {
        return usageStory;
    }
    public void setValueDescription(String valueDescription) 
    {
        this.valueDescription = valueDescription;
    }

    public String getValueDescription() 
    {
        return valueDescription;
    }
    public void setBusinessImplDescription(String businessImplDescription) 
    {
        this.businessImplDescription = businessImplDescription;
    }

    public String getBusinessImplDescription() 
    {
        return businessImplDescription;
    }
    public void setFbType(String fbType) 
    {
        this.fbType = fbType;
    }

    public String getFbType() 
    {
        return fbType;
    }
    public void setClientType(String clientType) 
    {
        this.clientType = clientType;
    }

    public String getClientType() 
    {
        return clientType;
    }
    public void setVersionType(String versionType) 
    {
        this.versionType = versionType;
    }

    public String getVersionType() 
    {
        return versionType;
    }
    public void setVersionDescription(String versionDescription) 
    {
        this.versionDescription = versionDescription;
    }

    public String getVersionDescription() 
    {
        return versionDescription;
    }
    public void setCategoryId(Long categoryId) 
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() 
    {
        return categoryId;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public String getObjectStatus() {
        return objectStatus;
    }

    public void setObjectStatus(String objectStatus) {
        this.objectStatus = objectStatus;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public List<UserDataAuth> getUserList() {
        return userList;
    }

    public void setUserList(List<UserDataAuth> userList) {
        this.userList = userList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("usageyName", getUsageyName())
            .append("usageyDescription", getUsageyDescription())
            .append("usageType", getUsageType())
            .append("isAlone", getIsAlone())
            .append("usageStory", getUsageStory())
            .append("valueDescription", getValueDescription())
            .append("businessImplDescription", getBusinessImplDescription())
            .append("fbType", getFbType())
            .append("clientType", getClientType())
            .append("versionType", getVersionType())
            .append("versionDescription", getVersionDescription())
            .append("categoryId", getCategoryId())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
